/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package asaexpr;

/**
 *
 * @author Florian
 */
public abstract class ASAExpr {
    
    public ASAExpr getExpr1(){
        return null;
    }
    
    public ASAExpr getExpr2(){
        return null;
    }
    
    public ASAExpr simplifie(){
        return this;
    }
    
    public abstract int evalue();
    
    public abstract String getLabelExplorateur();
    
    public int getValeur() {
        return -1;
    }
    
    public String notationExplorateur() {
        return notationExplorateur("");
    }
    
    private String notationExplorateur(String prefixe) {
        String res = prefixe + getLabelExplorateur() + "\n";
        String prefixeSuiv = prefixe + "  ";
        ASAExpr e1 = getExpr1();
        ASAExpr e2 = getExpr2();
        if (e1 != null)
            res += e1.notationExplorateur(prefixeSuiv);
        if (e2 != null)
            res += e2.notationExplorateur(prefixeSuiv);
        return res;
    }
}
